const dbm = require('../config/dbModels');

class MarketRegionDao {
    /**
     * 创建Tag
     * @param data 浏览器发送的数据
     * @returns {Promise<*>}
     */
    static async cMarketRegion(data) {
//findOrCreate里面的defaults这个属性挺有用:findOrCreate({ where: { name: 'haha' }, defaults: { phone: 14478544121 } })
        var arr_res = await dbm.MarketRegion.findOrCreate({ where: { name: data.name } })
        if (!arr_res[1]) {
            throw new global.errs.ParameterException('该市场已存在,无需重复添加')
        }
        return arr_res
    }

    static async uMarketRegion(data) {
        var res = await dbm.MarketRegion.update(
            { name: data.name },
            {
                where: {
                    id:  data.id
                }
            }
        )
        if (res[0] == 0) { 
            throw new global.errs.ParameterException('更新失败,请重试')
        }
    }

  /*
  可用plain属性得到纯粹的对象格式
  arr_res[0].get({
            plain: true
        }) 
            findOrCreate 返回一个包含已找到或创建的对象的数组,找到或创建的对象和一个布尔值,如果创建一个新对象将为true,否则为false,像这样:
        
            [ {
                username: 'sdepold',
                job: 'Technical Lead JavaScript',
                id: 1,
                createdAt: Fri Mar 22 2013 21: 28: 34 GMT + 0100(CET),
                updatedAt: Fri Mar 22 2013 21: 28: 34 GMT + 0100(CET)
              },
              true ]
        
        在上面的例子中,第三行的数组将分成2部分,并将它们作为参数传递给回调函数,在这种情况下将它们视为 "user" 和 "created" .(所以“user”将是返回数组的索引0的对象,并且 "created" 将等于 "true".)
            */


    /**
     * 查询MarketRegion的中文名
     * @param id  MarketRegion的id,即传入的MarketRegionId
     * @returns {Promise<Model>}
     */
 
    static async rMarketRegion(id) {
        return await dbm.MarketRegion.findOne({
            where: {
                id
            }
        })
    }

    static async dMarketRegion(id) {
        return await dbm.MarketRegion.destroy({
            where: {
                id
            }
        })
    }

   static async getAllMarketRegion() {
       return await dbm.MarketRegion.findAll({raw:true})
   }
}
module.exports = MarketRegionDao
